import numpy as np

MAX_DEPTH = 10000  # 10000mm，将深度映射到 0-255色阶上

def read_raw_depth_image(filename, width, height):
    # 打开文件并读取数据
    with open(filename, "rb") as f:
        data = f.read()

    # 检查数据长度是否与期望的长度匹配
    if len(data) != width * height * 2:
        raise ValueError(
            f"The file size does not match the expected size for {width}x{height} image."
        )

    # 将数据解析为16位的无符号整数数组
    depth_array = np.frombuffer(data, dtype=np.uint16)

    # 将一维数组重塑为二维图像
    depth_image = depth_array.reshape((height, width))

    # 如果需要，可以归一化深度值到0-255的范围（这取决于你的深度范围）
    # 假设最大深度是某个值max_depth，你可以这样归一化：
    depth_image_normalized = (depth_image / MAX_DEPTH * 255).astype(np.uint8)
    return depth_image_normalized
